package cn.hy.机考.part01;

import java.util.Scanner;

/**
 * @author zhaomu
 *
 * <p>
 * 5、标题:5键键盘的输出
 * 【5键键盘的输出】有一个特殊的 5键键盘，上面有 a,ctrl-c,ctrl-x,ctrl-v,ctrl-a五个键。
 * a键在屏幕上输出一个字母 a;
 * ctrl-c 将当前选择的字母复制到剪贴板;
 * ctrl-x 将当前选择的 字母复制到剪贴板，并清空选择的字母;
 * ctrl-v 将当前剪贴板里的字母输出到屏幕;
 * ctrl-a 选择当前屏幕上所有字母。
 * 注意:
 * 1、剪贴板初始为空，新的内容被复制到剪贴板时会覆盖原来的内容
 * 2、当屏幕上没有字母时，ctrl-a无效
 * 3、当没有选择字母时，ctrl-c和 ctrl-x无效
 * 4、当有字母被选择时，a和ctrl-v这两个有输出功能的键会先清空选择的字母，再进行输出
 * 给定一系列键盘输入，输出最终屏幕上字母的数量。
 * 输入描述:
 * 输入为一行，为简化解析，用数字 12345代表 a,ctrl-c,ctrl-x,ctrl-v,ctrl-a五个键的输入，数字用空格分隔
 * 输出描述:
 * 输出一个数字，为最终屏目上字母的数量。
 * 示例:
 * 输入
 * 1 1 1
 * 输出
 * 3
 */
public class Demo01 {
    public static void main(String[] args) {
        // 获取输入信息 用数字 12345代表 a,ctrl-c,ctrl-x,ctrl-v,ctrl-a
        Scanner scanner = new Scanner(System.in);
        String[] strings = scanner.nextLine().split(" ");
        // 记录屏幕字符串
        StringBuilder screen = new StringBuilder();
        // 剪切板中的元素
        String tempStr = "";
        // 标识选中
        boolean bool = false;
        for (int i = 0; i < strings.length; i++) {
            String currentOpt = strings[i];
            // 输出字母 a
            // 选中 + 输出字母
            if (currentOpt.equals("1") && bool) {
                screen = new StringBuilder();
                screen.append("a");
                bool = false;
            }
            // 未选中 + 输出字母
            if (currentOpt.equals("1") && !bool) {
                screen.append("a");
            }
            // 拷贝 + 选中的
            if (currentOpt.equals("2") && bool) {
                tempStr = screen.toString();
            }
            // 剪切 + 选中的
            if (currentOpt.equals("3") && bool) {
                tempStr = screen.toString();
                screen = new StringBuilder();
                bool = false;
            }
            // 粘贴剪切板中的信息 + 选中的
            if (currentOpt.equals("4") && bool) {
                screen = new StringBuilder();
                screen.append(tempStr);
            }
            // 粘贴剪切板中的信息 + 选中的
            if (currentOpt.equals("4") && !bool) {
                screen.append(tempStr);
            }

            // 选中所有字母
            if (currentOpt.equals("5")) {
                tempStr = screen.toString();
                // 标识选中
                bool = true;
            }
        }

        // 打印
        System.out.println(screen.length());
    }
}
